Dtmf lockout utility using epoch time stamp

ABSTRACT

A method for converting a first time and a first date in a first format to a second time in a second format includes determining a number of seconds that have elapsed between a predetermined date and a beginning of a current year of the first date. The method further includes adding to the determined number of seconds, a calculated number of seconds calculated from the beginning of the current year to a current month and a current day of the first date to obtain a first sum. The first sum varies based on whether the current month is within a leap year and is subsequent to a leap day of the leap year. A number of seconds that have elapsed between a beginning of the current day of the first date and the first time is added to the first sum. Lastly, a predetermined number of seconds is added to the first sum when Daylight Savings Time is in effect to obtain the second time in the second format.

This application is a continuation of pending U.S. patent applicationSer. No. 10/669,438, filed Sep. 25, 2003, the disclosure of which isexpressly incorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of telecommunications. Moreparticularly, the present invention relates to determining customer dataavailability by calculating elapsed time.

2. Background Information

Some advanced intelligent network (AIN) telecommunications servicesprovide a customer with an ability to change customer data, such as apersonal identification number (PIN), a telephone number screening list,service options, etc. Typically, in order to make these changes, thecustomer calls a particular telephone number to connect to aninteractive voice response (IVR) that acts as an interface to an elementof the telecommunications network, such as a service control point(SCP). The IVR interface is designed to handle multiple and simultaneouscalls. The IVR plays pre-recorded announcements and instructs the callerto choose among various options via the touch tone pad. Reacting to theinput of the caller, the IVR stores the requested changes in asubscriber's call processing record (CPR) or database table that resideson the SCP. These changes take effect immediately and are available forimmediate use by AIN service logic.

For example, a subscriber to an Outgoing Call Control (OCC) service, anAIN service, dials a ten digit OCC update number. A voice tells him toenter the phone number and pin number of the phone that is equipped withthe OCC service. After entering the phone number and correct pin, thevoice asks the caller to choose among a number of options. As anexample, the voice might ask him to enter the number two on the touchtone pad to change the PIN. After entering the two, the customer isinstructed to choose a new PIN. Immediately after successfully enteringthe new PIN and confirmation of the desired change, the new PIN becomesthe active PIN.

A problem with this method of customer change involves multiple usersupdating the same subscriber data. Whenever more than one person has thecapability to change a particular subscriber's data, it is alwayspossible that two or more authorized persons might try to initiatechanges at the same time. An instance of this might be when two membersof a household attempt to add non-restricted exception numbers to theOutgoing Call Control database. Simultaneous changes could have negativeresults on the subscriber's database. For this reason, a method isneeded for “locking out” all but the first of the callers. By lockingthe subscriber's database during a (dual tone multi-frequency) DTMFupdate, subsequent callers are prevented from entering conflicting datauntil the first caller has finished.

A system must also allow for users that abandon the call after theirdatabase becomes tagged as “in use”. The tag must be removed after thesuccessful DTMF update and a timer must be used to allow the logic toknow that the “in use” tag is no longer valid. Typically, the systemsets a duration or time limit to ignore the “in use” switch if the dateand time of the last update has passed.

In the current system, a Call Processing Record (CPR) that resides on aservice control point (SCP) includes logic that examines the values ofan “in use” flag, along with the time and date that flag was lastupdated and a number of time-out minutes, to determine whether a CPR isin use. If the “in use” flag is set to yes and the timer has notexpired, callers will not be allowed to access the data until thecurrent caller has finished updating or the timer expires. If the numberof time-out minutes has expired since the flag was last updated, then:the flag is cleared (in use=No); the time and date are reset to thecurrent time and date; and the return value indicates that the servicelogic should proceed as if the in use flag had not been set.

Currently, logic determines if the time out duration has expired by:comparing the current Gregorian date with the last update Gregorian dateand subtracting the current time from the (last update time+the maximumlockout period). Problems arise if DTMF updates are made and the lockoutperiod falls into the next day, i.e., just before midnight. When thishappens special logic determines if the call should be locked from DTMFupdate. Furthermore, daylight savings time is not accounted for by thecurrent method.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is further described in the detailed descriptionthat follows, by reference to the noted drawings by way of non-limitingexamples of embodiments of the present invention, in which likereference numerals represent similar parts throughout several views ofthe drawings, and in which:

FIG. 1 is a flow diagram showing an exemplary flow for determiningwhether data is available, according to an aspect of the presentinvention; and

FIG. 2 is a flow diagram showing an exemplary flow for calculating anumber of elapsed seconds, according to an aspect of the presentinvention.

DETAILED DESCRIPTION OF EMBODIMENTS

The present invention solves the problem of simultaneous DTMF updates tothe same set of subscriber data. Also, the present invention compensatesfor Daylight Savings Time and is, therefore, reliable during those twoperiods in which the time is adjusted by one hour each year. Thisinvention addresses and eliminates the problems caused by DaylightSavings time when calculating elapsed time between DTMF updates.

In view of the above, the present invention through one or more of itsvarious aspects and/or embodiments is presented to accomplish one ormore objectives and advantages, such as those noted below.

According to an aspect of the present invention, a method is providedfor converting a current time and a Gregorian date, including a currentyear, a current month, and a current day, into an epoch time stamp. Themethod includes receiving the current time and the Gregorian date, anddetermining a number of seconds that have elapsed since a predetermineddate up until, but not including, the current year. The method alsodetermines whether the current year is a leap year, and determines anumber of seconds that have elapsed since the beginning of the currentyear up until, but not including, the current month, based on whetherthe current year is a leap year. The method further calculates a numberof seconds that have elapsed since the beginning of the current month upuntil, but not including, the current day, and calculates a number ofseconds that have elapsed during the current day.

The determined number of seconds since the predetermined date, thedetermined number of seconds since the beginning of the current year,the calculated number of seconds since the beginning of the currentmonth, and the calculated number of seconds during the current day aresummed to obtain a converted time. Finally, it is determined whetherDaylight Savings Time is in effect. When Daylight Savings Time is not ineffect, 3600 seconds are added to the converted time. Thus, theconverted time is the epoch time stamp indicating the number of elapsedseconds since the predetermined time.

In one embodiment, the determining a number of seconds that have elapsedsince a predetermined date up until, but not including, the current yearfurther comprises looking up the number of seconds in a table. Inanother embodiment, the determining whether the current year is a leapyear requires comparing the current year with a table of leap years. Inanother embodiment, the determining a number of seconds that haveelapsed since the beginning of the current year requires looking up thenumber of seconds in a table, which may include a column for leap yearvalues, and a column for non-leap year values.

Determining whether Daylight Savings Time is in effect may includestoring a current system time; changing a current system time zone to acurrent system time zone without Daylight Savings Time; obtaining a newsystem time using the current time zone without Daylight Savings Time;and comparing the new system time with the stored system time. When thenew time differs from the stored time, it is determined that DaylightSavings Time is in effect.

In another aspect of the present invention, a method is provided fordetermining customer data availability. The method includes receiving atime stamp of a most recent update. The time stamp is a number ofelapsed seconds since a predetermined date and a predetermined time. Themethod also includes determining whether the customer data is in use,and receiving a maximum duration of a lockout period. The maximumduration of the lockout period, the time stamp, and whether the customerdata is in use are analyzed to determine whether the customer data isavailable.

The analyzing may include determining whether the sum of the time stampand the maximum duration of the lockout period is greater than a currenttime. In this case, when the sum is greater than the current time, thecustomer data is not available. When the sum is less than or equal tothe current time, the customer data is available. If the customer datais available, time stamp is replaced with a current time stamp and thecustomer data is indicated to be in use.

According to an embodiment of the present invention, a new custom nodedetermines whether or not a CPR is in use. The new decision nodeprovides for a cleaner and more understandable interface for the servicelogic designer. It also accounts for Daylight Savings Time. This node isinserted at the appropriate place in the service logic for the DTMFupdate CPR.

Referring to FIG. 1, at step 1 parameters are received. The parametersinclude a time stamp of the last DTMF update. The time stamp is thenumber of seconds since an arbitrary date, e.g., Jan. 1, 1970 00:00 GMT,as discussed in more detail below. Another parameter is an In Use Y/Ncall variable. Y means that the customer's data is in the process ofbeing updated. The parameters also include a maximum duration of alockout period in minutes.

After the parameters are received and the service logic is invoked, thelogic analyzes the time stamp of the customer's last update, along withthe In Use switch and maximum lockout duration time to determine whetheror not to allow customer change. For example, the logic may determinesif both the time stamp and lockout duration are valid. As shown at step2, the logic determines if the In Use flag is set to “Y”. If the In Useflag does not equal Y, at step 5 the customer will be allowed to proceedwith updating, the time stamp is replaced with the current time stamp,the in-use flag is set to “Y” and then the logic ends. If the In Usevariable is set to Y, at step 4 it is determined if the time stamp+thelockout duration is less than or greater than the current time.

If the time stamp+the lockout duration is greater than the current time,the DTMF process will not be allowed to occur, and at step 3 anannouncement can be played to the caller asking him to try back at alater time. If the time stamp+the lockout duration is less than thecurrent time, the DTMF process will be allowed to occur, the time stampis replaced with the current time stamp, and the In Use flag is set to“Y” at step 5. Subsequently, the logic ends, and if the caller has notprematurely abandoned the call, the In Use flag is set to “N”.

The present invention is intended to make the process of determiningcustomer data availability simpler and more reliable for the servicedeveloper. One advantage is to ensure that customers are allowed tochange their AIN service data in a safe and reliable fashion.

In order for this new user interface and method of calculating elapsedtime to be compatible with older time stamps, another aspect of thepresent invention converts a Gregorian date and time into a time stamprepresenting the number of seconds elapsed since an arbitrary time anddate.

Referring to FIG. 2, an explanation of exemplary logic will now bedescribed.

Initially, at step 10 the Gregorian date to be converted is received. Anexemplary format includes a two digit month, a two digit day, and a fourdigit year, i.e., MM/DD/YYYY. The time to be converted is also receivedat step 10. An exemplary format is two digits for hours and two digitsfor minutes, i.e., HH:MM.

Next, at step 12 the number of seconds that have elapsed up to but notincluding the current year is determined. In one embodiment, the numberof seconds is retrieved from a table. An exemplary table is shown asTable 1.

TABLE 1 YEAR SECONDS 1970 0 1971 31536000 1972 63072000 1973 946944001974 126230400 1975 157766400 1976 189302400 1977 220924800 . . . . . .

At step 14, it is determined if the current year is a leap year. In oneembodiment, a table that contains all leap years from 1970 to 2030,i.e., 1972, 1976, 1980, 1984 . . . , is searched.

At step 16, the number of seconds that have elapsed in the current year,up to but not including the current month is determined, based onwhether the current year is a leap year. In one embodiment, the numberof seconds is retrieved from a table having several columns, includingone column for non leap years and another column for leap years. Anexemplary table is shown as Table 2. The column SECONDS is for non leapyears and the column LSECONDS is for leap years. Subsequently, theretrieved number of seconds is added to the total number of elapsedseconds up to the current year.

TABLE 2 MONTH SECONDS LSECONDS 1 0 0 2 2678400 2678400 3 5097600 51840004 7776000 7862400 5 10368000 10454400 etc. . . . . . .

At step 18, the number of seconds up to but not including the currentday of the month is calculated. The calculation multiplies the date by24*60*60. Subsequently the calculated value is added to the numberalready stored.

At step 20, the current time is used to calculate the elapsed secondsfor the converted day. The calculation multiplies the hour by 3600 andthe minutes by 60. Those numbers are added to the number already stored.

At step 22 it is determined whether or not Daylight Savings time is ineffect. More specifically, the current time is stored and then thesystem time is changed to the current time zone not observing DaylightSavings Time. For example, Central Daylight Savings Time would becomeCentral Standard Time. In another example, Central Standard Time wouldremail Central Standard Time. The new time (after changing the systemtime) is then compared with the stored time to see whether they are thesame. If not, Daylight Savings Time is in effect.

If Daylight Savings Time is not in effect, at step 24 3600 seconds areadded to the final number to obtain the exact number of elapsed secondssince the predetermined time. Otherwise, the sum of the seconds is theexact number of elapsed seconds since the predetermined time.

It is understood that the words that have been used are words ofdescription and illustration, rather than words of limitation. Changesmay be made within the purview of the appended claims, as presentlystated and as amended, without departing from the scope and spirit ofthe invention in its aspects. Although the invention has been describedwith reference to particular means, materials and embodiments, theinvention is not intended to be limited to the particulars disclosed;rather, the invention extends to all functionally equivalent structures,methods, and uses such as are within the scope of the appended claims.

In accordance with various embodiments of the present invention, themethods described herein are intended for operation as software programsrunning on a computer processor. Dedicated hardware implementationsincluding, but not limited to, application specific integrated circuits,programmable logic arrays and other hardware devices can likewise beconstructed to implement the methods described herein. Furthermore,alternative software implementations including, but not limited to,distributed processing or component/object distributed processing,parallel processing, or virtual machine processing can also beconstructed to implement the methods described herein.

It should also be noted that the software implementations of the presentinvention as described herein are optionally stored on a tangiblestorage medium, such as: a magnetic medium such as a disk or tape; amagneto-optical or optical medium such as a disk; or a solid statemedium such as a memory card or other package that houses one or moreread-only (non-volatile) memories, random access memories, or otherre-writable (volatile) memories. A digital file attachment to email orother self-contained information archive or set of archives isconsidered a distribution medium equivalent to a tangible storagemedium. Accordingly, the invention is considered to include a tangiblestorage medium or distribution medium, as listed herein and includingart-recognized equivalents and successor media, in which the softwareimplementations herein are stored.

Although the present specification describes components and functionsimplemented in the embodiments with reference to particular standardsand protocols, the invention is not limited to such standards andprotocols. Each of the standards for Internet and other packet-switchednetwork transmission and public telephone networks represent examples ofthe state of the art. Such standards are periodically superseded byfaster or more efficient equivalents having essentially the samefunctions. Accordingly, replacement standards and protocols having thesame functions are considered equivalents.

1. A method, implemented on a computer, for converting a first time anda first date in a first format to a second time in a second format,comprising: determining a number of seconds that have elapsed between apredetermined date and a beginning of a current year of the first date;adding to the determined number of seconds, a calculated number ofseconds calculated from the beginning of the current year to a currentmonth and a current day of the first date to obtain a first sum thatvaries based on whether the current month is within a leap year andsubsequent to a leap day of the leap year; and adding to the first sum,an elapsed number of seconds between a beginning of the current day ofthe first date and the first time, and a predetermined number of secondswhen Daylight Savings Time is in effect, to obtain the second time inthe second format.
 2. The method according to claim 1, wherein the firstsum varies 86400 seconds depending on whether the current month iswithin the leap year and subsequent to the leap day of the leap year. 3.The method according to claim 1, wherein the first format comprises aGregorian date format.
 4. The method according to claim 1, wherein thesecond format comprises an epoch timestamp format.
 5. The methodaccording to claim 1, wherein the predetermined number of secondscomprises 3600 seconds.
 6. The method according to claim 1, furthercomprising: determining availability of data based on an indication ofwhether the data is in use and based on a sum of the second time and aduration of a maximum lockout period for the data, wherein the secondtime corresponds to a most recent update to the data.
 7. A method fordetermining data availability, comprising: obtaining a first time and afirst date corresponding to a most recent update of the data; convertingthe first time and the first date from a first format to a second timein a second format; and determining whether the data is available basedon an indication of whether the data is in use, and a sum of the secondtime in the second format and a maximum duration of a lockout period forthe data.
 8. The method according to claim 7, wherein convertingcomprises determining a number of seconds that have elapsed between apredetermined date and a beginning of a current year of the first date;adding to the determined number of seconds, a calculated number ofseconds calculated from the beginning of the current year to a currentmonth and a current day of the first date to obtain a first sum thatvaries based on whether the current month is within a leap year andsubsequent to a leap day of the leap year; and adding to the first sum,an elapsed number of seconds between a beginning of the current day ofthe first date and the first time, and a predetermined number of secondswhen Daylight Savings Time is in effect, to obtain the second time inthe second format.
 9. The method according to claim 7, wherein the datais stored in a database in a telecommunications network.
 10. The methodaccording to claim 7, wherein the data comprises at least one of apersonal identification number (PIN), a communication address screeninglist and service options.
 11. The method according to claim 7, wherein auser accesses the data using an interactive voice system.
 12. The methodaccording to claim 7, wherein the data is available for access by a userwhen the indication indicates the data is not in use.
 13. The methodaccording to claim 7, wherein a user is locked out from accessing thedata when the indication indicates the data is in use and the sum of thesecond time in the second format and the maximum duration of the lockoutperiod for the data is greater than an access date and an access time atwhich the user attempts to access the data.
 14. The method according toclaim 13, wherein the access date and the access time is formattedaccording to the second format.
 15. The method according to claim 7,wherein the data is available for access by a user when the indicationindicates the data is in use and the sum of the second time and themaximum duration of the lockout period for the data is either less thanor equal to an access date and an access time at which the user attemptsto access the data.
 16. The method according to claim 15, wherein theindication is reset to indicate the data is in use when the useraccesses the data.
 17. The method according to claim 15, wherein thefirst time and the first date are updated to reflect the access date andthe access time, and wherein the access date and the access time areconverted to the second format for comparison with the sum of the secondtime and the maximum duration of the lockout period.
 18. A computerreadable medium storing a program, recorded on the computer readablemedium, for converting a first time and a first date in a first formatto a second time in a second format, comprising: a determining code,recorded on the computer readable medium, executable to determine anumber of seconds that have elapsed between a predetermined date and abeginning of a current year of the first date; a first adding code,recorded on the computer readable medium, executable to add to thedetermined number of seconds, a calculated number of seconds calculatedfrom the beginning of the current year to a current month and a currentday of the first date to obtain a first sum that varies based on whetherthe current month is within a leap year and subsequent to a leap day ofthe leap year; and a second adding code, recorded on the computerreadable medium, executable to add to the first sum, an elapsed numberof seconds between a beginning of the current day of the first date andthe first time, and a predetermined number of seconds when DaylightSavings Time is in effect, to obtain the second time in the secondformat.
 19. A computer readable medium storing a program, recorded onthe computer readable medium, for determining data availability,comprising: a obtaining code, recorded on the computer readable medium,executable to obtain a first time and a first date corresponding to amost recent update of the data; a converting code, recorded on thecomputer readable medium, executable to convert the first time and thefirst date from a first format to a second time in a second format; anda determining code, recorded on the computer readable medium, executableto determine whether the data is available based on an indication ofwhether the data is in use, and a sum of the second time in the secondformat and a maximum duration of a lockout period for the data.
 20. Thecomputer readable medium according claim 19, wherein the data comprisescommunication data for a user in a communications network.